



#include "konto.h"
#include <vector>

using namespace std;
Konto::Konto(const Dato &dato, const string &nyttNavn, const string &nyttKontonr, const double startSaldo)
{
	fodseldato  = dato;
	navn		= nyttNavn;
	kontonr		= nyttKontonr;
	saldo		= startSaldo;
	antTrans	= 0;  //viktig
}

const string &Konto::finnKontonr() const
{
	return kontonr;
}

const string &Konto::finnNavn() const
{
	return navn;
}

const double Konto::finnSaldo()const
{
	return saldo;
}

const Dato &Konto::finnFodselsdato()const
{
	return fodseldato;
}

bool Konto::nyTransaksjon(Dato &dato, double sum)
{
	if(antTrans < 19 && (saldo+sum) > 0)
	{
		transaksjon[antTrans].settBeloep(sum);
		saldo = saldo + sum;
		transaksjon[antTrans].settDato(dato);
		antTrans++;
		return true;
	}

	return false;
}

Transaksjon &Konto::finnAlleTransaksjoner(const Dato &start,const Dato &slutt, int &antall)
{
	int antallRelevante = 0;
	vector<Transaksjon*> relevanteTrans; 
	
	for(int i = 0; i < antTrans; i++)
	{
		if(start.sammenlikn(transaksjon[i].finnDato()) <= 0 && slutt.sammenlikn(transaksjon[i].finnDato()) >= 0)
		{
			antallRelevante++;
			relevanteTrans.push_back(&transaksjon[i]);
			//cout << antallRelevante << endl;
		}
	}
	Transaksjon *tempTrans = new Transaksjon[antallRelevante];
	
	for(int i = 0; i < relevanteTrans.size(); i++)
	{
		tempTrans[i].settBeloep(relevanteTrans[i]->finnBeloep());
		tempTrans[i].settDato(relevanteTrans[i]->finnDato());
	}
	antall = relevanteTrans.size();
	

	return *tempTrans;
}
